package day12;
//测试volatile原子性
public class Demo2 implements Runnable {
    volatile int count;//购买商品的数量
    public void run() {
        for(int i=0;i<1000;i++){
            //volatile不能保证类似于下面的复合操作都成功 都失败
            //但是它可以保证属性单个操作 是原子性
            //通常可以通过synchronized同步锁保证安全
            synchronized (this){
                count++; //包含读取count 计算count+1 赋值count
                //count=100; 属于一次操作
            }
            System.out.println("购买的商品数量"+count);
        }
    }

    public static void main(String[] args) {
        Demo2 d=new Demo2();
        for(int i=0;i<1000;i++){
            new Thread(d).start();
        }
    }
}
